package jmine.tec.hydra.mock;

import java.math.BigDecimal;

import bancosys.tec.utils.date.Date;

/**
 * Operação Mock RF.
 * 
 * @author piercio
 */
public class MockOperacaoRF {

    private static final int ANO = 2002;

    private static final double VALUE = 1000000.12;

    private static final double PU = 22.23452341;

    private static final int QTD = 12000;

    private static final long COMMAND = 454545L;

    private static final long NUM_OP = 100000L;

    private final Long numeroOperacao;

    private final Date dataTransacao;

    private final Long comando;

    private final HydraPapelRF papelRF;

    private final BigDecimal quantidade;

    private final BigDecimal puNegociacao;

    private final BigDecimal valor;
    
    private boolean excecaoScript;


    /**
     * Construtor.
     */
    public MockOperacaoRF() {
        this.numeroOperacao = NUM_OP;
        this.dataTransacao = new Date(ANO, 2, 2);
        this.comando = COMMAND;
        this.papelRF = new HydraPapelRF();
        this.quantidade = BigDecimal.valueOf(QTD);
        this.puNegociacao = BigDecimal.valueOf(PU);
        this.valor = BigDecimal.valueOf(VALUE);
    }
    
    public boolean isExcecaoScript() {
        return this.excecaoScript;
    }

    public void setExcecaoScript(boolean excecaoScript) {
        this.excecaoScript = excecaoScript;
    }

    /**
     * @return o valor do campo numeroOperacao
     */
    public Long getNumeroOperacao() {
        return this.numeroOperacao;
    }

    /**
     * @return o valor do campo dataTransacao
     */
    public Date getDataTransacao() {
        return this.dataTransacao;
    }

    /**
     * @return o valor do campo comando
     */
    public Long getComando() {
        return this.comando;
    }

    /**
     * @return o valor do campo papelRF
     */
    public HydraPapelRF getPapelRF() {
        return this.papelRF;
    }

    /**
     * @return o valor do campo quantidade
     */
    public BigDecimal getQuantidade() {
        return this.quantidade;
    }

    /**
     * @return o valor do campo puNegociacao
     */
    public BigDecimal getPuNegociacao() {
        return this.puNegociacao;
    }

    /**
     * @return o valor do campo valor
     */
    public BigDecimal getValor() {
        return this.valor;
    }

    /**
     * Papel Mock RF.
     */
    public class HydraPapelRF {
        private final Date dataVencimento;

        private final String codigoCamaraLiquidacao;

        /**
         * Construtor.
         */
        public HydraPapelRF() {
            this.dataVencimento = new Date(ANO, 2, 2);
            this.codigoCamaraLiquidacao = "123456";
        }

        /**
         * @return o valor do campo dataVencimento
         */
        public Date getDataVencimento() {
            return this.dataVencimento;
        }

        /**
         * @return o valor do campo codigoCamaraLiquidacao
         */
        public String getCodigoCamaraLiquidacao() {
            return this.codigoCamaraLiquidacao;
        }

    }
}
